fast-forward merge とは?
はじめに
知らない言葉が出てきたのでまとめました。
普段SourceTreeを使用してるのであんま細かいことわかってないんですよね。 コマンド使うと深いところまで理解できます。。。(多分)
fast-forward mergeとは?
日本語訳だと「早送りマージ」
branchをマージする際、マージするbranchの分岐元がそのマージするbranchその人だった場合、 ただ単にポインタを前に進めるだけ、、になる。
ただ単にポインタを前に進めるだけってなに?
A:マージコミットが発生しない!
よくよく考えたら普段マージするとき2種類パターンがあることに気付かされます。
その2種類とは?
マージコミットが発生するパターン と マージコミットが発生しないパターン です。
わかりづらいので実際にやってみた
Fast-forward mergeの例
[code lang=text] ryo_oda$ git merge feature/test Updating f7870e8..d923e55 Fast-forward test.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
gitさん「ほいほいmergeね…?」 gitさん「よくよく見たら…派生元のmaster派生してから変わってないやんけ、、」 gitさん「単純にmasterの先頭をfeature/testの先頭のところにもってくればええか。。」
って感じです。(多分)
[/code]
Fast-forwardじゃない mergeの例
[code lang=text] ryo_oda$ git merge feature/2018-10-04 Auto-merging test.md CONFLICT (content): Merge conflict in test.md Automatic merge failed; fix conflicts and then commit the result. [/code]
ってこれはAuto-mergingに失敗してしまったパターンです。。 とくにコンフリクトがない場合、ここでmergeコミットが作られます。正確に言うと「Auto-merge」です。
なんとなく見えてきましたね!😝